<?php
/**
 * @package EXCEL
 * @copyright Авторские права (C) 2010 www.yar-it.com. Все права защищены.
 * @license Лицензия http://www.gnu.org/licenses/gpl-2.0.htm GNU/GPL, или help/license.php
 * Price Excel! - свободное программное обеспечение распространяемое по условиям лицензии GNU/GPL
 * Для получения информации о используемых расширениях и замечаний об авторском праве, смотрите файл copyright.php.
 */


defined( '_JEXEC' ) or die( 'Restricted access' );

global $mainframe;

// define directory separator short constant
if (!defined( 'DS' )) {
    define( 'DS', DIRECTORY_SEPARATOR );
}

require(JPATH_SITE.DS.'components'.DS.'com_excel'.DS.'excel.excel.class.php');

function imgshow($imgid) {

    $jxlspppif  = JURI::base().'/components/com_excel/pricesimg/';
    echo "<div align=\"center\" id=\"prsimg\"><a href='$jxlspppif$imgid' rel='lightbox' title='".$imgid."'>";
    echo "<img src='".JURI::base()."/components/com_excel/images/image.png' height=\"16px\" width=\"16px\" border=\"0\" ";
    echo "</a></div>";
}

function uc2html($str) {
    $ret = '';
    for( $i=0; $i<strlen($str)/2; $i++ ) {
        $charcode = ord($str[$i*2])+256*ord($str[$i*2+1]);
        $ret .= '&#'.$charcode;
    }
    return $ret;
}

function fatal($msg = '') {
    echo JText::_('pex error');
    if( strlen($msg) > 0 )
        echo ": $msg";
    echo "<br />".JText::_('pex complete')."<br />";
    if( $f_opened) @fclose($fh);
    // exit();
};

$err_corr = JText::_('pex error_format');



if( $excel_file == '' ) fatal(JText::_('pex not_load'));

$exc = new ExcelFileParser("debug.log", ABC_NO_LOG );//ABC_VAR_DUMP);
$res = $exc->ParseFromFile($excel_file);

switch ($res) {
    case 0: break;
    case 1: fatal(JText::_('pex error_notfound'));
        break;
    case 2: fatal(JText::_('pex error_size'));
        break;
    case 3: fatal(JText::_('pex error_head'));
        break;
    case 4: fatal(JText::_('pex error_read'));
        break;
    case 5: fatal(JText::_('pex error_file'));
        break;
    case 6: fatal(JText::_('pex error_corrupt'));
        break;
    case 7: fatal(JText::_('pex error_empty'));
        break;
    case 8: fatal(JText::_('pex error_vers'));
        break;

    default:
        fatal(JText::_('pex error_unknown'));
        break;
}

for( $ws_num=0; $ws_num<count($exc->worksheet['name']); $ws_num++ ) {
    //вывод заголовка листа
    echo '<table cellspacing="1" width="100%" cellpadding="5" class="table_excel" border="0"><tbody><tr bgcolor="#e8edf4"><td><b>'.JText::_('page').': ';
    if( $exc->worksheet['unicode'][$ws_num] ) {
        echo uc2html($exc->worksheet['name'][$ws_num]);
    } else
        echo $exc->worksheet['name'][$ws_num];

    echo "</b></td></tr></tbody></table>";

    $ws = $exc->worksheet['data'][$ws_num];
    if( is_array($ws) && isset($ws['max_row']) && isset($ws['max_col']) ) {
        echo '<table cellspacing="1" width="100%" cellpadding="5" class="table_excel" border="0"><tbody>';

        /*echo "<tr><td>&nbsp;</td>";
                 for( $j=0; $j<=$ws['max_col']; $j++ ) {
                        echo "<td class=index>&nbsp;";
                        if( $j>25 ) echo chr((int)($j/26)+64);
                       echo chr(($j % 26) + 65)."&nbsp;</td>";
                        //echo "</td>";
                 }*/

        for( $i=0; $i<=$ws['max_row']; $i++ ) {
            echo "<tr>";
            // echo "<tr><td class=index><font color=ffffff>".($i+1)."</font></td>";                                           // <td class=index>".($i+1)."</td>";
            if(isset($ws['cell'][$i]) && is_array($ws['cell'][$i]) ) {
                for( $j=0; $j<=$ws['max_col']; $j++ ) {

                    if( ( is_array($ws['cell'][$i]) ) &&
                            ( isset($ws['cell'][$i][$j]) )
                    ) {

                        // echo cell data
                        echo "<td class=\"";
                        $data = $ws['cell'][$i][$j];

                        //  $font = $ws['cell'][$i][$j]['font'];
                        //   $style = " style ='".ExcelFont::ExcelToCSS($exc->fonts[$font])."'";

                        switch ($data['type']) {
                            // string
                            case 0:
                                echo "dt_string\">";
                                $ind = $data['data'];
                                if( $exc->sst['unicode'][$ind] ) {
                                    $s = uc2html($exc->sst['data'][$ind]);
                                } else
                                    $s = $exc->sst['data'][$ind];
                                if( strlen(trim($s))==0 )
                                    echo "&nbsp;";
                                else
                                //определение наличия ссылки на изображение
                                    if (eregi("[0-9a-z]+.jpg",$s,$out)) {
                                        imgshow($out[0]);

                                    } else echo $s;
                                break;
                            // integer number
                            case 1:
                                echo "dt_int\">&nbsp;";
                                echo $data['data'];
                                break;
                            // float number
                            case 2:
                                echo "dt_float\">&nbsp;";
                                echo $data['data'];
                                break;
                            // date
                            case 3:
                                echo "dt_date\">&nbsp;";

                                $ret = $data[data];//str_replace ( " 00:00:00", "", gmdate("d-m-Y H:i:s",$exc->xls2tstamp($data[data])) );
                                echo ( $ret );
                                break;
                            default:
                                echo "dt_unknown\"> &nbsp;";
                                break;
                        }
                        echo "</td>";
                    } else {
                        echo '<td class="empty">&nbsp;</td>';
                    }
                }
            } else {
                // echo an empty row
                for( $j=0; $j<=$ws['max_col']; $j++ )
                    echo '<td class="empty">&nbsp;</td>';
            }
            echo "</tr>";
        }

        echo "</tbody></table><br />";
    } else {
        // emtpty worksheet e8edf4
        echo "<b> -". JText::_('pex empty') ."</b><br />";
    }
    echo "<br />";
}
?>
